#ifndef _IINTERACTABLE_H
#define _IINTERACTABLE_H

///////////////////////////////////////////////////////////////////////////
//																		 //
//	Author:		Michael Mozdzierz										 //
//	Date:		11/01/2014												 //
//	Purpose:	Define an interactible interface. All interactible 		 //
//				objects in the world will derrive from this interface	 //
//				to mark them as interactible. This interface also 		 //
//				provides the interaction manager with the information	 //
//				it needs to make the interact system function		     //
//																		 //
///////////////////////////////////////////////////////////////////////////

// An interface that defines objects as interactible
struct IInteractable
{
	virtual ~IInteractable(void) { }

	// a callback for when this object has been interacted with
	virtual void Interact(void) = 0;

	// the distance someone has to be to be able to interact with this object
	virtual float getRange(void) const = 0;

	// the position of this object
	virtual Vector3 getLocation(void) const = 0;
};

#endif